home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Camelot / Camelot 043 (1989-06)(Swedish User Group of Amiga)(SE)(PD)[WB].zip / Camelot 043 (1989-06)(Swedish User Group of Amiga)(SE)(PD)[WB].adf / Glib / glib.h < prev    next >
C/C++ Source or Header  |  1989-03-16  |  3KB  |  119 lines

  1. /*
  2.  * GLIB - a Generic LIBrarian and editor for synths
  3.  */
  4.  
  5. #include <stdio.h>
  6. #include "machdep.h"
  7.  
  8. #define EOX 0xf7
  9. #define MOUSE -2
  10.  
  11. #ifndef BUFSIZ
  12. #define BUFSIZ 512
  13. #endif
  14.  
  15. /* If a machine needs to do something special to read/write a binary file, */
  16. /* this is a hook that a machdep.h can override to do what it  needs to. */
  17. /* For example, see the Atari ST version  of machdep.h */
  18. #ifndef OPENBINFILE
  19. #define OPENBINFILE(f,file,mode) f=fopen(file,mode)
  20. #endif
  21.  
  22. /* Seconds before we give up trying to read something */
  23. #define TIMEOUT 5
  24.  
  25. #define NUMONSCREEN 12
  26. /* position of first voice row */
  27. #define FIRSTROW 10
  28. #define LEFTSIDE 2
  29. #define RIGHTSIDE 54
  30. #define YANKROW 12
  31. #define YANKCOL 31
  32. #define LIBBANKS 3
  33. #define NOREDRAW 0
  34. #define REDRAW 1
  35.  
  36. #define CH_REDRAW '\014'
  37.  
  38. #define CH_INC 'K'
  39. #define CH_INC2 'I'
  40. #define CH_INC3 '>'
  41. #define CH_DEC 'J'
  42. #define CH_DEC2 'M'
  43. #define CH_DEC3 '<'
  44.  
  45. #define CH_LEFT 'h'
  46. #define CH_DOWN 'j'
  47. #define CH_UP 'k'
  48. #define CH_RIGHT 'l'
  49. #define SCR_DOWN '\04'
  50. #define SCR_UP '\025'
  51.  
  52. #define STR_LEFT "h"
  53. #define STR_DOWN "j"
  54. #define STR_UP "k"
  55. #define STR_RIGHT "l"
  56.  
  57. #define VOICEBYTE(d,v,n) (*((d)+(v)*Voicesize+(n)))
  58.  
  59. struct paraminfo {
  60.     char *p_name;
  61.     char *p_label;
  62.     INT16 p_lrow;    /* position for printing name */
  63.     INT16 p_lcol;
  64.     INT16 p_vrow;        /* position for printing value */
  65.     INT16 p_vcol;
  66.     char *((*p_tovis)());
  67.     INT16 p_min;
  68.     INT16 p_max;
  69.     INT16 p_val;
  70.     INT16 p_flags;
  71. };
  72.  
  73. struct labelinfo {
  74.     INT16 l_row;
  75.     INT16 l_col;
  76.     char *l_text;
  77. };
  78.  
  79. struct editinfo {
  80.     char *ed_name;        /* Synth name */
  81.     struct paraminfo *ed_params;    /* list of parameters */
  82.     struct labelinfo *ed_labels;    /* screen labels in edit mode */
  83.     INT16 ed_nvoices;        /* number of voices */
  84.     INT16 ed_vsize;        /* size of each voice data, in bytes */
  85.     INT16 ed_nsize;        /* name size */
  86.     int (*ed_din)();    /* copy voice data into paraminfo array */
  87.     int (*ed_dout)();    /* copy voice data out of paraminfo array */
  88.     int (*ed_sedit)();    /* send 1 voice to synth edit buffer */
  89.     int (*ed_sone)();    /* send 1 voice to a synth (permanent) patch*/
  90.     int (*ed_sbulk)();    /* send bulk voice data */
  91.     int (*ed_gbulk)();    /* get bulk voice data */
  92.     char *(*ed_nof)();    /* get name of a voice out of data */
  93.     int (*ed_snof)();    /* set name of a voice in data */
  94.     char *(*ed_numof)();    /* convert voice number to on-screen text */
  95.     int (*ed_cvtnum)();    /* convert visable voice number to std. format */
  96.     int (*ed_cvtanum)();    /* convert alphanumeric voice number to std. format */
  97. };
  98.  
  99. struct peredinfo {
  100.     char *ed_libdata;    /* memory for library banks */
  101.     char *ed_syndata;    /* memory for synth bank */
  102.     char *ed_yankdata;    /* memory for yank buffer */
  103.     INT16 ed_libindex;    /* voice number of topmost displayed lib voice*/
  104.     INT16 ed_synindex;    /* ditto for synth side */
  105.     INT16 ed_channel;        /* MIDI channel # */
  106.     INT16 ed_erow;
  107.     INT16 ed_ecol;
  108. };
  109.  
  110. extern struct paraminfo *P;
  111. extern struct labelinfo *L;
  112. extern struct editinfo E[];
  113. extern int Rows, Cols, Channel, Nvoices, Voicesize, Redraw;
  114. extern char *Reason, *Synthname;
  115.  
  116. char *bankvoice();
  117. char *malloc(), *alloc(), *nextls();
  118. long milliclock();
  119.